﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ServiceSATT;
using ApplicationContext;

namespace UI_SATT
{
    public partial class FrmListaClubes : Form,IListadoFederacion,IListadoClub,IInterfazClub
    {
        string[][] ListaFederaciones;
        string[][] ListaClubes;
        string ImplementaFederacion = "FederacionService";
        string ImplementaClub = "ClubService";
        IClubService ClubSer;
       

        public FrmListaClubes()
        {
            InitializeComponent();
        }

        
        
        private void BtnSalir_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.OK;
            this.Close();

        }
        private void FrmListaClubes_Load(object sender, EventArgs e)
        {

            IFederacionService FedSer = (IFederacionService)AppContext.Instance.GetObject(ImplementaFederacion);
            
            FedSer.ListaFederacion(this);
            
        }


        #region IListadoFederacion Members

        public string[][] Listado
        {
            set
            {
                
                if (CboListaFederaciones.Items.Count > 0)
                    CboListaFederaciones.Items.Clear();
                ListaFederaciones = value;
                foreach (string[] valor in value)
                {
                    CboListaFederaciones.Items.Add(valor[0]);
                }
                CboListaFederaciones.SelectedIndex = -1;
            }

        }

        #endregion

        #region IListadoClub Members

        public string NombreFederacion
        {
            get { return CboListaFederaciones.SelectedItem.ToString(); }
        }

        public string[][] LstClub
        {
            set 
            {
                if (DGVListaClub.Columns.Count == 0)
                {
                    DGVListaClub.Columns.Add("Nombre", "Nombre");
                    DGVListaClub.Columns.Add("Presidente", "Presidente");
                    DGVListaClub.Columns.Add("Estado", "Estado");
                }
                if (DGVListaClub.Rows.Count > 0)
                    DGVListaClub.Rows.Clear();
                foreach (string[] Valores in value)
                {
                    DGVListaClub.Rows.Add(Valores);
                }
                ListaClubes = value;
            }
        }

        #endregion

        private void CboListaFederaciones_SelectionChangeCommitted(object sender, EventArgs e)
        {
            ClubSer = (IClubService)AppContext.Instance.GetObject(ImplementaClub);
            ClubSer.ListaClub(this);
           
          
        }



        #region IInterfazClub Members


        public string Federacion
        {
            get
            {
                return CboListaFederaciones.SelectedItem.ToString() ;
            }
            set
            {
                CboListaFederaciones.SelectedItem = value;
            }
        }

        public string Nombre
        {
            get
            {
                 return DGVListaClub.SelectedRows[0].Cells["Nombre"].Value.ToString();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public string Presidente
        {
            get
                {
                
                return DGVListaClub.SelectedRows[0].Cells["Presidente"].Value.ToString(); 

                }
            set
            {
                throw new NotImplementedException();
            }
        }

        public bool Estado
        {
            get
            {
                return Convert.ToBoolean(DGVListaClub.SelectedRows[0].Cells["Estado"].Value);
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        #endregion



        #region IInterfazClub Members

        public int DNI
        {
            get
            {
             return int.Parse(ListaClubes[DGVListaClub.SelectedRows[0].Index][3]);
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        #endregion

        private void BtnModificar_Click(object sender, EventArgs e)
        {
            if (CboListaFederaciones.SelectedIndex < 0)
            {
                MessageBox.Show("Debe seleccionar una federacion de la lista");
            }
            else
            {

                if (DGVListaClub.SelectedRows.Count == 0 || DGVListaClub.SelectedRows[0].Index >= ListaClubes.Length)
                {
                    Form Modificar = new FrmNuevoClub(CboListaFederaciones.SelectedItem.ToString());
                    Modificar.Text = "Agregar Club";
                    if (Modificar.ShowDialog() == DialogResult.OK)
                    {
                        MessageBox.Show("Club Agregado con exito");
                        ClubSer.ListaClub(this);
                       
                    }
                }
                else
                {
                    Form Modificar = new FrmNuevoClub(this);
                    Modificar.Text = "Modificar Club";
                    if (Modificar.ShowDialog() == DialogResult.OK)
                    {
                        MessageBox.Show("Club Modificado con exito");

                        ClubSer.ListaClub(this);
                      
                    }
                }
            }
        }

        #region IInterfazClub Members

        public int IdClub
        {
            get
            {
            return int.Parse(ListaClubes[DGVListaClub.SelectedRows[0].Index][4]);
           }
            set
            {
                throw new NotImplementedException();
            }
        }

        #endregion

     
    }
}
